package com.zhuiyun.project.api.products.product.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.zhuiyun.project.api.products.product.entity.Sort;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @ClassName SortMapper
 * @Description 分类的 持久化层
 * @Author ypq
 * @Date 2023/10/25 16:44
 **/
@Mapper
public interface SortMapper extends BaseMapper<Sort> {

    /**
    * @Author ypq
    * @Description 分类的全查方法
    * @Date 2023/10/27 9:17
    * @Return List<Sort>
    * @param sort
    */
    List<Sort> listSorts(Sort sort);

    /**
     * @Author ypq
     * @Description 新增分类
     * @Date 2023/10/27 9:17
     * @Return int
     * @param sort
     */
    int addSort(Sort sort);

    /**
    * @Author ypq
    * @Description 根据分类id查询对应子分类
    * @Date 2023/11/1 19:01
    * @Return List<Sort>
    * @param parentId
    */
    List<Sort> listSortByParentIds(@Param("parentId") Long parentId);

    /**
     * @Author hyp
     * @Description 根据分类id通过审批
     * @Date 2023/11/15 19:31
     * @Return com.zhuiyun.project.common.response.CommonResult
     * @param sort
     */
    int editApproval(Sort sort);

    /**
     * @Author hyp
     * @Description 根据分类id驳回审批
     * @Date 2023/11/15 19:32
     * @Return com.zhuiyun.project.common.response.CommonResult
     * @param sort
     */
    int editReject(Sort sort);

    /**
     * @Author hyp
     * @Description 查询一级分类所有数据
     * @Date 2023/11/15 19:29
     * @Return com.zhuiyun.project.common.response.CommonResult
     * @param sort
     */
    List<Sort> listSortPrimarys(Sort sort);

    /**
     * @Author hyp
     * @Description 查询二级分类所有数据
     * @Date 2023/11/15 19:29
     * @Return com.zhuiyun.project.common.response.CommonResult
     * @param sort
     */
    List<Sort> listSortSecondarys(Sort sort);

    /**
     * @Author hyp
     * @Description 查询三级分类所有数据
     * @Date 2023/11/15 19:29
     * @Return com.zhuiyun.project.common.response.CommonResult
     * @param sort
     */
    List<Sort> listSortThreeLevels(Sort sort);

    /**
     * @Author hyp
     * @Description 根据分类id查询
     * @Date 2023/11/15 19:33
     * @Return com.zhuiyun.project.common.response.CommonResult
     * @param sortId
     */
    Sort getSortById(Long sortId);

    /**
     * @Author hyp
     * @Description 根据分类id重置审批
     * @Date 2023/11/15 19:34
     * @Return com.zhuiyun.project.common.response.CommonResult
     * @param sort
     */
    int resetApproval(Sort sort);
    /**
     * @Author hyp
     * @Description 查询所有分类
     * @Date 2023/11/22 20:41
     * @Return
     */
    List<Sort> listSortAll();
}
